The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also correspond to the claimed embodiments.
Computing systems and algorithms which interact directly with users sometimes will make recommendations to those users. For instance, such systems may provide recommendations to a user for a search, a product, an event, etc.
Collaborative filtering (CF) is a technique used by some recommender systems. The concept of collaborative filtering has both a broad and a narrow context. Broadly speaking, collaborative filtering is the process of filtering for information or patterns using techniques involving collaboration among multiple agents, viewpoints, data sources, and so forth. Applications of collaborative filtering often involve very large data sets in which the collaborative filtering methods are applied in a variety of implementation environments including, for example, sensing and monitoring data in mineral exploration, environmental sensing over large areas or multiple sensors; financial data in financial services, user data in electronic commerce and web 2.0 applications, etc.
In the narrower context, collaborative filtering is a method of making automatic predictions (filtering) about the interests of a system user by collecting preferences or taste information from many users (collaborating) such that the recommendation system may attempt to provide “recommendations” to the system users. In such a model, the method operates on the blind assumption that where user A shares the same opinion as a user B for a given issue x, then user A is more likely to share user B's opinion on a different issue y than to share the same opinion as user z chosen at random.
Unfortunately, implementing what may be a theoretically preferred method, has been found in actual practice to be computationally expensive due to the massive number of potential data point pairs that must be analyzed. For instance, it is wholly feasible to have billions of data points relevant to the desired prediction/recommendation, and while such a large population may be theoretically beneficial to the accuracy of a resulting prediction, the reality of providing computational hardware capable of performing such analysis for a system interacting with many users in real time fails to yield the necessary return. Greater computational efficiency is therefore needed to justify use of such a recommendation system in practice. Improved accuracy could also be realized through new techniques.
The present state of the art may therefore benefit from methods, systems, and apparatuses for performing time-partitioned collaborative filtering in an on-demand service environment as described herein.